home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 034a / zdcs165.zip / ZDCS-REF.TXT < prev    next >
Text File  |  1991-12-31  |  86KB  |  2,112 lines

  1.  
  2.  
  3.  
  4.           Zipfile Duplicate Checking System (ZDCS)  Ver. 1.65
  5.                  Copyright (C) 1991,  Michael W. Cocke
  6. ---------------------------------------------------------------------
  7.  
  8.  
  9.                       Technical Reference Manual
  10.  
  11.  
  12.  
  13.  
  14. TABLE OF CONTENTS
  15. -----------------
  16.  
  17.  
  18. ABOUT THE DOCS..................................................2
  19. PURPOSE OF ZDCS.................................................2
  20. GENERAL TECHNICAL INFORMATION...................................3
  21. ZDCS OPTIONS....................................................4
  22.      Deletion of Duplicate Files................................4
  23.      Allowed Dupicates..........................................4
  24.      BBS Ads....................................................4
  25.      Pre-Testing................................................5
  26. INSTALLATION OVERVIEW...........................................5
  27. THE ZDCS CONFIGURATION FILE.....................................5
  28.      Function...................................................5
  29.      Line 1.....................................................6
  30.      Line 2.....................................................6
  31.      Line 3.....................................................6
  32.      Line 4.....................................................6
  33.      Line 5.....................................................7
  34.      Line 6.....................................................7
  35.      Line 7.....................................................8
  36.      Line 8.....................................................8
  37. THE ZDCS DATABASE BUILD.........................................8
  38.      Purpose....................................................8
  39.      Creation of the Initial Database...........................9
  40.      The Screen Display During the Database Build...............9
  41.      Additions to an Existing ZDCS Database....................10
  42.      ZDCSDB Without a Separate File Integrity Checker..........11
  43.      The Database Build Log File ZDCS-DBB.LOG..................11
  44. THE ZDCS DUPLICATE REPORT GENERATOR............................12
  45. THE ZDCS DATABASE PURGE........................................12
  46. BBS ADS........................................................13
  47.      Function..................................................13
  48.      Creation of the BBS Ads Database..........................14
  49.      Updating the BBS Ads Database.............................14
  50.      Selecting Deletion or Flagging of BBS Ads.................15
  51. ALLOWED DUPLICATES.............................................16
  52. THE UPLOAD FILE CHECKER........................................17
  53.      Purpose...................................................17
  54.      Function..................................................17
  55.      Maximum and Actual Percent Dupes in an Upload.............18
  56.      Updating ZDCS Database(s) After an Upload.................18
  57.      Calling ZDCS from EXZTEST.................................19
  58.      Calling ZDCSFC from the PCBTEST.BAT file..................19
  59.      DOS Error Levels..........................................21
  60.  
  61.  
  62.  
  63.                                   - 1 -
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. PROCESSING LOCAL UPLOADS.......................................21
  71. PRE-TESTING....................................................22
  72. ZIPs WITHIN ZIPs...............................................24
  73. CD-ROMs........................................................24
  74. AV STAMP INTEGRITY.............................................25
  75. ACCURACY OF THE CRC32 METHOD...................................26
  76. MEMORY LIMITS..................................................26
  77. TROUBLE-SHOOTING GUIDE.........................................26
  78.      ZDCSDB (the database build) is crashing...................27
  79.      ZDCS is reporting a device I/O error (in any module)......27
  80.      ZDCS reports memory corrupt errors (in any module)........27
  81.      ZDCS reports path/file access errors......................27
  82.      QEMM exception 13 errors occur when running ZDCS..........28
  83. REGISTRATION...................................................29
  84. SUPPORT........................................................30
  85. FUTURE ENHANCEMENTS............................................31
  86. ACKNOWLEDGEMENTS...............................................32
  87. COPYRIGHTS AND LEGAL STUFF.....................................32
  88.  
  89.  
  90.  
  91.  
  92. ABOUT THE DOCS
  93. --------------
  94.  
  95. Welcome to the technical reference manual ZDCS-REF.TXT for ZDCS
  96. version 1.65.  This manual has been prepared to give you an easy
  97. reference guide for the various parts, functions, and options in ZDCS.
  98. It is deliberately arranged to be modular in organization so that you
  99. can look up whatever interests you without having to read the entire
  100. manual.
  101.  
  102. There is a second major piece of documentation in this package, a walk-
  103. through called ZDCSWALK.TXT.  This is a friendly guide that is meant
  104. to hold your hand and whisper sweet explanations in your ear as you
  105. install and first explore ZDCS.  It's arranged to take you through all
  106. the steps you need to know from beginning to end.
  107.  
  108.  
  109.  
  110. PURPOSE OF ZDCS
  111. ---------------
  112.  
  113. ZDCS is a shareware set of utilities intended to help a PCBoard sysop
  114. deal with the problem of duplicate files, whether those files are
  115. already on the bbs or are being uploaded by a caller.  It provides
  116. specific support for looking inside ZIP files (including PKZIP version
  117. 1.93) and self-extracting files made with PKZIP (SFX).  Since both
  118. ZIPs and SFXs are treated the same by ZDCS, we'll refer to both as
  119. zipfiles.  ZDCS also provides support for accepting unzipped GIFs.
  120.  
  121. ZDCS helps to manage the problem of duplicate files in two ways.
  122.  
  123. 1.   It provides a method for weeding out duplicate files from an
  124.      existing collection of files, like a bbs file system.
  125.  
  126. 2.   It provides a duplicate checking method for any prospective
  127.      addition to the existing file base, such as uploads.
  128.  
  129.                                   - 2 -
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ZDCS was written by a sysop and programmer who knew that sysops never
  137. have enough time to do all the things they would like to do on their
  138. boards.  Making ZDCS friendly to use for both sysop and caller has
  139. been important since version 1.0 first debuted.
  140.  
  141. Although ZDCS is intended for use on PCBoard bbs's, it can also be
  142. used to look for duplicates on other systems as well, such as a
  143. shareware CD-ROM or even multiple directories on your hard drive
  144. system.  However, it's on a bbs that ZDCS really shows its stuff.
  145.  
  146. ZDCS can be told to decline an upload, to automatically remove
  147. duplicate files, to delete those pesky little bbs ads from uploads,
  148. and to recognize "allowed duplicates" - or any combination of the
  149. above.  There's even a pre-test capability that lets callers find out
  150. ahead of time whether or not their intended upload duplicates files
  151. already on your board.  All of these are discussed in this reference
  152. manual and described in the walk-through guide ZDCSWALK.TXT as well.
  153.  
  154.  
  155.  
  156. GENERAL TECHNICAL INFORMATION
  157. -----------------------------
  158.  
  159. ZDCS handles file archives created with the .ZIP extension by PKZIP
  160. (including version PKZIP 1.93) and with the .SFX extension (self-
  161. extracting .EXE files) also created by PKZIP.  ZDCS is able to see
  162. inside each of these archives to deal with the individual files inside
  163. them.  Since ZIP files are by far more common that SFX files, and
  164. since they are both treated the same way by ZDCS, we'll use the term
  165. "zipfile" to refer to both of them.
  166.  
  167. ZDCS also handles GIF files.  These are individual graphic files that
  168. already have their own compression.  GIFs may be uploaded to some
  169. bbs's as individual files.  They are not archives of multiple
  170. freestanding files, so ZDCS does not need to look "inside" them.  In
  171. fact, ZDCS thinks of them rather like poor zipfiles with only a single
  172. file in them.
  173.  
  174. Whenever ZDCS encounters a file that is not a ZIP or an SFX, it treats
  175. that file like a GIF.  Although we will continue to use the term GIF
  176. to refer to these files, ZDCS could actually handle any "other" type
  177. of file by treating it as a single file, the same as it does with
  178. GIFs.
  179.  
  180. ZDCS does not provide support for other archiving methods.  This means
  181. that if ZDCS encounters an ARJ or LZH archive, for example, it cannot
  182. see inside the archive to look at the individual files.  (Support for
  183. other archive formats is under development.)  Instead, the entire
  184. archive would be treated as a single GIF-type file.
  185.  
  186. ZDCS makes use of the 32-bit CRC, often called the CRC32, used
  187. internally by PKZIP for ZIPs and SFXs.  When ZDCS encounters any other
  188. file, it considers that file to be a GIF and calculates the CRC32 for
  189. it.
  190.  
  191. ZDCS checks files for duplicates by keeping a database of the CRC32
  192. values.  When new files are added to the system (uploads), ZDCS
  193.  
  194.  
  195.                                   - 3 -
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. compares the CRC32s of the newcomers to those in the database to
  203. determine if there are any matches, indicating duplicate files.  This
  204. method uses the identity of the files and is independent of the names
  205. of those files.
  206.  
  207. The ZDCS database of CRC32s uses a B-tree index, so there are no sort
  208. utilities or regular file maintenance requirements of any kind.
  209.  
  210. ZDCS is compatible with any Netbios compatible lan, such as Lantastic
  211. or Novell Netware.
  212.  
  213.  
  214.  
  215. ZDCS OPTIONS
  216. ------------
  217.  
  218. ZDCS has four sets of options that can be configured independently of
  219. each other and changed at any time.  You can try out the different
  220. options and change your mind about which ones you want to use without
  221. re-installing ZDCS.
  222.  
  223. For a good guide to choosing the options to fit your system, take a
  224. look at the walk-through ZDCSWALK.TXT.  As part of the installation
  225. guide it explains what each option can mean to your bbs and what some
  226. of the possible consequences are.  Each of these options is also
  227. covered in greater technical detail in other sections of this
  228. reference manual.
  229.  
  230.  
  231. Deletion of Duplicate Files
  232. ---------------------------
  233.  
  234. ZDCS can be set to either flag or delete duplicate files from uploads
  235. to your bbs.  Either way, ZDCS will still recognize the files that are
  236. duplicates of ones already in the bbs file system and leaves you
  237. messages in a log file.  This deletion feature does not operate on a
  238. GIF file.
  239.  
  240.  
  241. Allowed Dupicates
  242. -----------------
  243.  
  244. You can designate certain files as allowed duplicates.  Although these
  245. files may already be present on your bbs, you can tell ZDCS not to
  246. treat them like duplicates.  This prevents ZDCS from deleting them if
  247. you have selected the option to delete duplicate files.  It also
  248. prevents the allowed duplicates from being counted in the calculation
  249. of the percentage of duplicates in an upload.  This feature does work
  250. for GIF files.
  251.  
  252.  
  253. BBS Ads
  254. -------
  255.  
  256. You can specify certain files as truly obnoxious.  These are
  257. collectively referred to as bbs ads after one of our favorites.  ZDCS
  258. can be told to either flag or delete these files from all uploads.
  259.  
  260.  
  261.                                   - 4 -
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. This option is completely independent of the option to delete
  269. duplicate files.  A major distinction is that bbs ads are files that
  270. are known and despised ahead of time.  This option provides a safe way
  271. to delete them without risking the removal of authors' unchanged files
  272. from newer shareware versions.  The bbs ads option does not operate on
  273. a GIF file.
  274.  
  275.  
  276. Pre-Testing
  277. -----------
  278.  
  279. ZDCS offers a simple method for callers to your bbs to pre-test an
  280. upload before actually sending the full file to the board.  The pre-
  281. test is quick and gives the same information that callers would see
  282. after sending the full file.  There are no upload credits granted for
  283. using just the pre-test feature without sending up the full file.
  284.  
  285.  
  286.  
  287. INSTALLATION OVERVIEW
  288. ---------------------
  289.  
  290. There are five basic steps to installing ZDCS to work with the bbs:
  291.  
  292. 1.   Setting up the configuration file.
  293. 2.   Creating the initial database.
  294. 3.   Creating the bbs ads database (optional).
  295. 4.   Creating the list of allowed duplicates (optional).
  296. 5.   Setting up the check for uploaded duplicates.
  297.  
  298. There is a walk-through called ZDCSWALK.TXT included in this package
  299. to help you install ZDCS.  It's a friendly guide to understanding the
  300. functions and installing the programs on your bbs.  It is especially
  301. good for taking you through the steps slowly and in order so that
  302. installation goes smoothly on your system.
  303.  
  304. This technical reference manual has information on all the parts,
  305. functions and options of ZDCS, but it's arranged with a different
  306. purpose in mind:  to allow you to find and read only those specific
  307. sections you want to know more about.  If you want to install ZDCS, we
  308. highly recommend using the walk-through as your primary guide and all-
  309. around hand-holder.
  310.  
  311.  
  312.  
  313. THE ZDCS CONFIGURATION FILE
  314. ---------------------------
  315.  
  316. Function
  317. --------
  318.  
  319. The ZDCS configuration file ZDCS.CFG is central to the entire process.
  320. All the modules of ZDCS look for and use at least parts of this file.
  321. It's also the place where you set many of the options and all of the
  322. parameters of ZDCS.
  323.  
  324. For such a powerful component, the ZDCS.CFG is surprisingly simple:
  325. just eight short lines of ASCII that you can create with any text
  326.  
  327.                                   - 5 -
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. editor.  A sample configuration file is included with this package.
  335. The contents of each line are discussed in excruciating detail further
  336. on in this section.
  337.  
  338. Under most circumstances, ZDCS.CFG should be in the same directory as
  339. the rest of the ZDCS files.  This is always true if you are running
  340. DOS version 3.x or higher.
  341.  
  342. The one time that the configuration should be located elsewhere is for
  343. those poor souls still running DOS 2.x.  In this unusual case,
  344. ZDCS.CFG belongs in whichever directory will be the current directory
  345. when the ZDCS program modules are run.
  346.  
  347.  
  348. Line 1
  349. ------
  350.  
  351. This line is the complete drive, path and filename of an ASCII text
  352. file.  This is a file that you create listing all the pathnames, one
  353. on each line, that contain the zipfiles / GIFs to be included in the
  354. database.  To process a new collection of files into the ZDCS
  355. database, like those on a CD-ROM, just change either this line or the
  356. contents of the file it points to.
  357.  
  358. There is no upper limit on the number of pathnames that can be
  359. processed.  But make sure that you've included the trailing backslash
  360. for each pathname.
  361.  
  362. If you are not using the index file feature in PCBoard 14.5a, then you
  363. can use the DLPATH.LST file from PCBoard to point to the complete bbs
  364. file system if you want to.
  365.  
  366.  
  367. Line 2
  368. ------
  369.  
  370. This line is the drive and pathname where you want the finished ZDCS
  371. database to be located.  It makes no difference if you include the
  372. trailing backslash here or not.
  373.  
  374. You can put the ZDCS database in the same directory as the rest of the
  375. ZDCS files and programs, or you can decide to put it on a different
  376. drive or even across the network.
  377.  
  378.  
  379. Line 3
  380. ------
  381.  
  382. This line is either the letter "Y" or the letter "N".  It controls
  383. whether you want ZDCS to delete all duplicate files from an upload (Y)
  384. or just flag them and leave them intact (N).
  385.  
  386.  
  387. Line 4
  388. ------
  389.  
  390. This line is an integer - that's a whole number, no decimals - between
  391. 0 and 100.  It sets the maximum percentage of dupes that your bbs will
  392. accept in an upload.
  393.                                   - 6 -
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. ZDCS will calculate the actual percentage of duplicates in the upload
  401. and compare it to your maximum percentage.  If the actual percentage
  402. is lower, the upload is accepted.  If the actual percentage is equal
  403. to or higher than the maximum you specified, the upload is declined
  404. and moved to your private upload directory for review.
  405.  
  406. Setting the percentage to 100 effectively bypasses this filter, since
  407. it permits a duplicated GIF or a zipfile with nothing but duplicates
  408. to pass.  At the other extreme, setting the percentage to 0
  409. effectively requires that the uploaded GIFs and zipfiles have no
  410. duplicates at all.
  411.  
  412. If you make a mistake and enter a decimal on line 4, ZDCS will not
  413. crash.  It will simply truncate your number (lop off everything after
  414. the decimal point) and use the resulting integer as the maximum
  415. percentage of dupes.
  416.  
  417. This works out quite well in actual practice.  Uploads that are a
  418. fraction of a percent under the maximum percentage of duplicates are
  419. the only files where this makes any difference, and the use of
  420. truncating instead of rounding means that they will always be passed.
  421. IF ZDCS rounded the decimal points instead, there would be some
  422. uploads that would round up, making their actual percentage of dupes
  423. the same as the maximum value.  Such files are declined by ZDCS.
  424.  
  425. For more discussion of maximum and actual percentage of dupes,
  426. including an example of the above situation, please see the section on
  427. the upload file checker ZDCSFC in this manual.
  428.  
  429.  
  430. Line 5
  431. ------
  432.  
  433. This line is the complete drive, path and filename you want ZDCS to
  434. use for the log file created by the upload file checker ZDCSFC.  This
  435. log is an ASCII text file that contains information from the upload
  436. file checker ZDCSFC for each upload it has processed.  Each message
  437. about a specific upload includes the following:
  438.  
  439.      name of the uploaded zipfile or GIF
  440.      list of all component files inside a zipfile
  441.      which files are flagged as bbs ads
  442.      which files are marked as duplicates
  443.      which files are marked as allowed duplicates
  444.      actual percentage of dupes in the upload
  445.      whether the upload was accepted or declined
  446.  
  447. If PCBOARD.SYS is in the current directory when the upload file
  448. checker is run, then the name of the currently logged caller is also
  449. included in the log file.
  450.  
  451.  
  452. Line 6
  453. ------
  454.  
  455. This line is either the letter "Y" or the letter "N".  It controls the
  456. switch to tell ZDCS whether to delete bbs ads (Y) in an uploaded
  457.  
  458.  
  459.                                   - 7 -
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. zipfile or to just flag them (N).  If you've decided not to enable any
  467. checking for bbs ads at all, just set this to N.
  468.  
  469.  
  470. Line 7
  471. ------
  472.  
  473. This line is reserved for a single line of text by the sysop.  The
  474. contents of this line are appended to the PCBFAIL.TXT file whenever an
  475. upload is declined.  The caller who has just uploaded the declined
  476. file sees this line of text as a message on the screen.
  477.  
  478. This line is where you can express from 1 to 72 characters' worth of
  479. creativity.  Some callers have become quite fixated on the idea that
  480. "declined" is the same as "thrown out" - which is of course not true.
  481. You can use this line to tell the caller what has happened or will
  482. happpen with the upload.  One possible line to use is (without the
  483. quotes) "Too many duplicate files - upload must be reviewed by sysop."
  484.  
  485. If you don't want to display any message to the caller, just place
  486. something innocuous like a period or even a blank space on this line.
  487. Just don't leave the line completely blank!  You also shouldn't use
  488. any quotation marks in this line.  You can make use of the PCBoard
  489. @codes; they are fully supported here.
  490.  
  491.  
  492. Line 8
  493. ------
  494.  
  495. This line consists of the single letter "Y" or "N".  It controls
  496. whether ZDCS displays the one line "registered to" message after the
  497. board receives an upload (Y) or turns off the display of this message
  498. (N).  Either way, the caller still sees the file by file breakdown of
  499. the upload and the status (duplicate, bbs ads, etc.) of each file.
  500.  
  501. This line is only recognized by the registered version of ZDCS.  It
  502. has no effect on the three line message displayed by the unregistered
  503. version.  It is also the only line of the configuration file that you
  504. can forget to include without causing major problems.  If the line is
  505. missing, ZDCS defaults to (Y) and displays the message.
  506.  
  507. This would probably be a fine time to wax poetical about the
  508. advantages of registration.  Instead, we'll just direct you to the
  509. section in this manual on registration for more information about
  510. that, and to the section on support for some of the reasons why.
  511. (Actions speak louder than words.)
  512.  
  513.  
  514.  
  515. THE ZDCS DATABASE BUILD
  516. -----------------------
  517.  
  518. Purpose
  519. -------
  520.  
  521. In order for ZDCS to process new uploads, it must first have created a
  522. database for the existing files to serve as a standard of comparison.
  523.  
  524.  
  525.                                   - 8 -
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. This is referred to as the duplicate file database, the ZDCS database,
  533. or the CRC32 database.  Information stored in this database includes
  534. the full pathname and file name of every zipfile and GIF examined by
  535. ZDCS and the names and CRC32 values of every individual file.
  536.  
  537. There is another purpose to building the ZDCS database besides
  538. enabling ZDCS to check uploads.  It also serves as a tool to help you
  539. weed out duplicate files from the existing collection.
  540.  
  541.  
  542. Creation of the Initial Database
  543. --------------------------------
  544.  
  545. THE ZDCS database of duplicate files is created with the database
  546. build program ZDCSDB.  The finished database consists of three files:
  547. ZDCS.NDX (the index), ZDCS.DAT (part 1 of the data) and ZDCS.PTH (part
  548. 2 of the data).  A  fourth file is also created during this process:
  549. ZDCS-DBB.LOG, which is an ASCII text file logging messages from the
  550. database creation process.
  551.  
  552. To create the database, you simply run ZDCSDB.  This program looks for
  553. the ZDCS configuration file to tell it which files you want to
  554. process.  These can be in multiple directories, on different drives,
  555. or across a network.  Once you start the build process, there is
  556. nothing more to do until it is complete.  Everything will run
  557. automatically with no need for additional input from you.  While the
  558. program is running, there is a screen display that gives you the
  559. current status of operations and one very important piece of
  560. information:  use the F10 key if you wish to abort the process.
  561. Additional explanation of the screen display is covered in another
  562. section of this manual.
  563.  
  564.  
  565. The Screen Display During the Database Build
  566. --------------------------------------------
  567.  
  568. The ZDCSDB status summary contains both useful and esoteric
  569. information.  The most important of these is the notice that the F10
  570. key is the one to use in order to abort the database build.  Aborting
  571. the process any other way will almost certainly lead to lost and/or
  572. cross-linked clusters on your hard disk, not to mention a very unhappy
  573. sysop.
  574.  
  575. In general, ZDCS treats an SFX file like a ZIP file, and this
  576. documentation has reflected that fact by using the term "zipfile" to
  577. refer to both types.  For the purposes of this section, we will use
  578. the individual terms SFX and ZIP, since the screen display does
  579. distinguish between them.
  580.  
  581. One line in the middle of the screen will change frequently as ZDCSDB
  582. is processing files.  Besides letting you know that the system is
  583. working, this line tells you something about the processing steps as
  584. they take place, just in case you were curious.
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.                                   - 9 -
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. The possibilities are:
  599.  
  600. Directory C1.. ZDCS has just begun processing a new directory
  601. Directory C2.. ZDCS has just retrieved the next ZIP / SFX / GIF file
  602.                within the same directory
  603. ZIP Directry.. ZDCS is retrieving information from within an
  604.                individual zipfile
  605. SFX........... ZDCS is retrieving information from within an
  606.                individual SFX file
  607. ZIZ........... ZDCS is processing a ZIP within a ZIP
  608. CRC........... ZDCS is calculating the CRC-32 for a GIF file
  609. Indexing...... ZDCS is writing the index and data to the Btree files
  610.  
  611. Underneath this changing line is a line that tells you which ZIP, SFX
  612. or GIF file is currently being processed, with the full pathname
  613. included.  Below that is the phrase "Member files" followed by the
  614. number of individual files within the ZIP, SFX or GIF being processed.
  615. (Remember, a GIF shows up as having only one member file.)
  616.  
  617. The next line down starts with either "Share" or "NoShare" to indicate
  618. the type of "file opens" being used.  The presence of the DOS share
  619. utility in memory is detected by all ZDCS programs to permit automatic
  620. use of the appropriate type of file access.
  621.  
  622. The second item on the same line is the word "Files" followed by the
  623. number of ZIPs, SFXs and GIFs that have been processed so far.
  624.  
  625. The third item on the same line is "Members" followed by the total of
  626. all the individual files that have been added to the CRC32 database so
  627. far.  Since a GIF is thought of as a ZIP with only one file in it,
  628. each GIF that is processed is counted as just one more individual file
  629. here.
  630.  
  631. The fourth item is "PDupes" followed by a number.  This is arcane
  632. internal status information that will not be explained here.
  633. (Consider yourself lucky.)  The only time you are likely to need this
  634. is if there is a probelm with your system during the database build
  635. and we ask you to read the screen display to us.
  636.  
  637. The very last line is the time of day when the ZDCSDB program was
  638. started.  The end time will appear right after the start time on the
  639. same line.
  640.  
  641.  
  642. Additions to an Existing ZDCS Database
  643. --------------------------------------
  644. Adding new files to the existing ZDCS database is very simple.  If you
  645. run the database build ZDCSDB when there already is an existing ZDCS
  646. database, the records for the new files will be added to those already
  647. in the database.  (If you temporarily rename or move the database
  648. files mentioned in the database creation section, then ZDCS will not
  649. recognize them until you restore them.)
  650.  
  651. This provides a very simple method for adding large or small file
  652. collections to an existing database.  All you have to do is edit the
  653. first line of the configuration file to point to the new files, and
  654.  
  655.  
  656.  
  657.                                  - 10 -
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. you're ready to go.  Issue the command ZDCSDB and from here on the
  665. process will proceed just the same way as it does for creating the
  666. initial database.
  667.  
  668. There is a second way to add files to the ZDCS database.  Available
  669. free on The Hacker Central BBS is a merge utility that lets you
  670. combine two ZDCS databases into one.  This allows you to create
  671. smaller databases at a time and then merge them together, which can be
  672. an advantage if you have a very large collection to process.
  673.  
  674. The main advantage of the database merge option is that it allows
  675. sysops to use pre-built ZDCS databases for common file collections,
  676. like the popular CD-ROMs of shareware programs.  Pre-built databases
  677. are also available on The Hacker Central and are mentioned in more
  678. detail in the section in this manual on support.
  679.  
  680.  
  681. ZDCSDB Without a Separate File Integrity Checker
  682. ------------------------------------------------
  683.  
  684. ZDCS is not a file integrity checker and does not intend to replace
  685. the fine checkers that are already available.  Normal operation of
  686. ZDCS assumes that you have already processed your files with a file
  687. integrity checker.
  688.  
  689. Human nature and circumstances being what they are, a special switch
  690. has been included with the database build module to permit some simple
  691. file integrity checking to be done.  This method has ZDCS call in
  692. PKZIP to use the -T switch to test zipfiles.  There is no checking
  693. performed on GIFs at all.
  694.  
  695. To use this feature, you issue the database build command as ZDCSDB T
  696. instead of ZDCSDB.  Because ZDCS now calls PKZIP for the file
  697. integrity checking in addition to the usual functions of the database
  698. build, the processing time is greatly increased.  If you are only
  699. processing a small collection of files, such as a batch of local
  700. uploads, the difference in time is probably unimportant in practice.
  701. But if you are processing a large set of files, you'll be better off
  702. making your first pass with a file integrity checker and then using
  703. the regular ZDCSDB command to build the database.
  704.  
  705. If you run ZDCSDB on a collection of files that includes a corrupt
  706. zipfile, the database build will very likely crash.  While you can
  707. find out after the fact about the damaged zipfile by reading the log,
  708. it's still far preferable to avoid the problem entirely by using file
  709. integrity checking first.
  710.  
  711.  
  712. The Database Build Log File ZDCS-DBB.LOG
  713. ----------------------------------------
  714.  
  715. There is a log file called ZDCS-DBB.LOG created by the database build
  716. operation.  This is an ASCII text file that logs messages from the
  717. database creation process.
  718.  
  719. If ZDCSDB encounters damaged zipfiles while trying to build the
  720. database, there would be messages alerting you to that fact in the log
  721.  
  722.  
  723.                                  - 11 -
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. file.  Another case that would generate messages here is when ZDCSDB
  731. hits a zipfile with more than 650 component files.  The first 650
  732. files would be processed, and then ZDCS would leave you a message in
  733. the log file letting you know about the situation.
  734.  
  735. If you have any problems while running ZDCSDB, look in this log file
  736. for help in understanding what happened.
  737.  
  738.  
  739.  
  740. THE ZDCS DUPLICATE REPORT GENERATOR
  741. -----------------------------------
  742.  
  743. The purpose of the duplicate report generator ZDCSDR is to use the
  744. information in your ZDCS database to give you a report of all
  745. duplicate files in your file collection.  The usual time to do this is
  746. after you have created the initial database.
  747.  
  748. It is entirely likely that when you first create the initial database
  749. you will already have some duplicate files in your collection of
  750. zipfiles and GIFs.  To find out about them, run ZDCSDR to generate a
  751. flat ASCII text file called ZDCS-DUP.LST.  This is a list of all
  752. duplicate files in the database, including the name and CRC32 of the
  753. duplicated file and the identity with full drive and pathname of the
  754. zipfile or GIF containing the dupe.  The format of the ZDCS-DUP.LST
  755. file is the standard comma-separated variable to make it easy to
  756. import this file into a database or parse it into a .BAT file.
  757.  
  758. When you run ZDCSDR, it asks you whether you want the results sorted
  759. by the CRC32, the individual file name, or the name of the zipfile or
  760. GIF containing the dupe.  This sort is called the Wichita sort after
  761. some roundabout and historical reasons.
  762.  
  763. Once you have the list of duplicates ZDCS-DUP.LST in hand, you are
  764. ready to clean out your file system.  Use the information to remove
  765. any duplicate files from the file collection.  On some of the larger
  766. bbs file systems, this step alone has freed up megabytes of hard drive
  767. space.
  768.  
  769. After you are sure you have finished cleaning up the file system, it
  770. is possible to purge duplicate entries from the CRC32 database in
  771. order to reduce its size.  This is covered in this manual in the
  772. section on purging the database.
  773.  
  774.  
  775.  
  776. THE ZDCS DATABASE PURGE
  777. -----------------------
  778.  
  779. Every duplicate file in your initial collection of files on the bbs
  780. will be reflected by a duplicate entry in the CRC32 database, which
  781. ZDCS uses as its standard of comparison for checking new uploads.
  782. Only one entry for each unique file is needed in order to recognize
  783. future uploads of the same file.  You can reduce the size of this ZDCS
  784. database by purging duplicate entries from it.  This leaves just one
  785. single reference to each individual CRC32 in the database.
  786.  
  787.  
  788.  
  789.                                  - 12 -
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. Before you make any changes to the ZDCS database at all, please read
  797. the section in this manual on the duplicate report generator ZDCSDR.
  798. The reporting function of this module will supply you with an accurate
  799. list of all your duplicate files, including the necessary path
  800. information - but only if you run it *before* you purge the database.
  801. Without this list, you'll be hard pressed to find and remove the
  802. duplicate files from your system.  We strongly recommend that you not
  803. only generate this report but also finish cleaning out the file system
  804. before you purge anything.
  805.  
  806. When you feel you are ready to purge the database, start by making a
  807. backup copy of it first.  This is very important.  *Please* make a
  808. copy of the database and put it away somewhere safe before you start
  809. purging info from it.  Once you purge this information, the only way
  810. to restore it is to rebuild the database.  While it is always possible
  811. to rebuild the database, this takes a fair bit of time, especially for
  812. larger systems.  And what sysop has enough time?
  813.  
  814. By now you are probably really ready to get on with it.  To purge the
  815. database of duplicates, you use the duplicate report generator module
  816. ZDCSDR with the P (for Purge) switch.  All you have to do is type
  817. ZDCSDR P and hit the enter key.  The "P" will redirect the program to
  818. purging the duplicates instead of creating a report on them.  There is
  819. nothing else to do until the purge is complete.  This is not a fast
  820. process, but it will pay you back with a smaller database.
  821.  
  822. A second way of modifying the ZDCS database is to use the database
  823. editor, a free utility available on The Hacker Central BBS.  This is
  824. actually a debugging tool, but it also works to modify the database
  825. and to delete specific records.  Unlike the database purge with ZDCSDR
  826. P, you can't let this one run on its own with no input from you.  On
  827. the other hand, the database editor give you greater flexibility over
  828. which duplicate entries you delete.
  829.  
  830. ZDCS doesn't quite have the intelligence to recognize a bbs ad unless
  831. you tell it which files to look for.  To do this, you have to create
  832. the bbs ads database.
  833.  
  834.  
  835.  
  836. BBS ADS
  837. -------
  838.  
  839. Function
  840. --------
  841.  
  842. ZDCS offers a way to recognize specific annoying files that can be
  843. targeted for deletion or simply flagged for manual removal,
  844. independently of whether or not you have configured ZDCS to delete
  845. duplicate files.  The distinction here is that the files, known
  846. collectively as bbs ads, are *known* files that you have given ZDCS
  847. specific orders to deal with.
  848.  
  849. In order to recognize a file as a bbs ad, you must first tell ZDCS
  850. about it.  This is done by setting up the bbs ads database.  After
  851. that, every time ZDCS seems the same file again it knows that it's a
  852. bbs ad.
  853.  
  854.                                  - 13 -
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. This option is completely independent of the option to delete
  863. duplicate files, so you don't have to take a chance on removing
  864. authors' unchanged files from newer shareware versions.  The bbs ads
  865. option does not operate on a GIF file.
  866.  
  867.  
  868. Creation of the BBS Ads Database
  869. --------------------------------
  870.  
  871. All you need to create the bbs ads database is the program ZDCSBA and
  872. a collection of bbs ads, pyramid schemes, chain letters or other
  873. obnoxious files.
  874.  
  875. Once created, the bbs ads database will consist of a single file, ZDCS-
  876. BBA.NDX, which will be located in the same directory as the rest of
  877. the ZDCS files.  You can delete this file at any time if you want to
  878. start over again with a fresh collection of files.
  879.  
  880. The easiest way to do create the bbs ads database involves collecting
  881. all those nasty ads together and zipping them up into one zipfile.
  882. You can use whatever name you like for the ZIP.  Then you run the
  883. program ZDCSBA from the directory containing all the ZDCS files on
  884. that zipfile.
  885.  
  886. This is easy to see with an example.  If your collection of files to
  887. be added is in a zip called BBS-ADS.ZIP, then the command you issue to
  888. create the bbs ads database with these files is:
  889.  
  890.                ZDCSBA BBS-ADS.ZIP
  891.  
  892.  
  893. You don't have to do anything else.  The program handles everything
  894. for creation of the bbs ads database.
  895.  
  896. If you want to create a new bbs ads database in the future, just
  897. delete the old database file (ZDCS-BBA.NDX) and follow the steps for
  898. creating a new bbs ads database.  If you don't delete the old
  899. database, then the new ads will be added to the old ones in the
  900. database, which is an easy way to add new bbs ads.
  901.  
  902.  
  903. Updating the BBS Ads Database
  904. -----------------------------
  905.  
  906. There are three easy ways to add new bbs ads as they are foisted off
  907. on the bbs community.
  908.  
  909. 1.   You can run ZDCSBA on a new zipped collection of ads when you
  910.      already have an existing bbs ads database.  This is good even if
  911.      the zipped collection only has a single file in it.  ZDCSBA works
  912.      just the same way here as it does for creating a new database,
  913.      with one exception:  the files being processed are added to the
  914.      existing database.  That's all there is to it.
  915.  
  916. Example.  Let's say that you've collected some bbs ads from your
  917.           board, your own downloads, and even from friends.  You zip
  918.  
  919.  
  920.  
  921.                                  - 14 -
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.           the entire set together and call it JUNK.ZIP.  To include
  929.           these files in the bbs ads database, just issue the command:
  930.  
  931.           ZDCSBA JUNK.ZIP
  932.  
  933. 2.   You can run ZDCSBA on an individual bbs ad without bothering to
  934.      zip it up first.  This is a quick way to catch a new ad as soon
  935.      as you are lucky enough to get it.
  936.  
  937. Example.  You've just come across an obnoxious get-rich-quick scheme
  938.           called MOOLAH.TXT.  To put this file in the bbs ads
  939.           database, just issue the command:
  940.  
  941.           ZDCSBA MOOLAH.TXT
  942.  
  943. 3.   You can even run ZDCSBA to include a file in the bbs ads database
  944.      when you don't have the original file, as long as you have the
  945.      CRC32 value for it from PKZIP.  Just run ZDCSBA on the CRC32
  946.      value immediately preceded by a dollar sign $ instead of on the
  947.      file itself.
  948.  
  949. Example.  You don't have the original ad anymore, but you have a
  950.           record that the CRC32 of a new bbs ad is E1E10999.  To put
  951.           this file in the bbs ads database, just issue the command:
  952.  
  953.           ZDCSBA $E1E10999
  954.  
  955. You can use any or all of these methods to add new records to the bbs
  956. ads database.  If you have an assortment of zipped collections, a
  957. couple of unzipped ads, and a few ads known only by CRC32, the data
  958. can all be entered into the same database without having to use the
  959. same technique for each individual file.
  960.  
  961.  
  962. Selecting Deletion or Flagging of BBS Ads
  963. -----------------------------------------
  964.  
  965. If you have built the bbs ads database, ZDCS will automatically detect
  966. its presence and will compare uploads against the records in the bbs
  967. ads database.  What ZDCS does with any matches it finds depends on how
  968. you set up the configuration file.
  969.  
  970. In line 6 of the ZDCS configuration file ZDCS.CFG, you typed one of
  971. two letters:  Y or N.  The letter Y tells ZDCS to delete the offending
  972. bbs ad.  The letter N tells ZDCS not to delete it, but to just flag it
  973. as a bbs ad.
  974.  
  975. When a bbs ad in an upload is merely flagged, that information is
  976. still displayed to the caller and recorded in the log for the upload
  977. file checker.  If you wish, you can go back and manually delete such
  978. files later on.
  979.  
  980. You can change your mind about using deletion or flagging to deal with
  981. bbs ads at any time.  All you have to do is edit that one line in the
  982. configuration file.  No other changes need to be made to run with the
  983. new option.
  984.  
  985.  
  986.  
  987.                                  - 15 -
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. ALLOWED DUPLICATES
  995. ------------------
  996.  
  997. Allowed duplicates are those files that may already be present in your
  998. file collection, but which you do not want ZDCS to treat as
  999. duplicates.  You can establish a list of files that are allowed
  1000. duplicates.  When ZDCS evaluates an upload, these allowed duplicates
  1001. will not be flagged as dupes.  They are protected from deletion, even
  1002. if you have configured ZDCS to delete duplicate files.  Furthermore,
  1003. when ZDCS evaluates the actual percentage of duplicates in an upload,
  1004. these files are not counted.
  1005.  
  1006. The reason behind the concept of allowed duplicates is that there are
  1007. some files that reappear frequently as critical components of more
  1008. than one major shareware package or upgrade version.  These might be
  1009. order forms, registration guides, general text files, small utilities
  1010. or other files.  Two common examples are the OMBUDSMN.ASP file found
  1011. in all ASP-ware and the VALIDATE.COM program included in every
  1012. revision of McAfee's SCAN package.  Both files turn up unchanged in
  1013. many zipfiles.  It would be misleading to treat these files as
  1014. ordinary duplicates.
  1015.  
  1016. There are two functional advantages to using allowed duplicates.
  1017. First, by not counting allowed duplicates in the actual percentage of
  1018. dupes calculation for new uploads, your system does not "penalize" a
  1019. zipfile for having one or more of these files when it comes to
  1020. deciding whether to accept or decline the file.  This is especially
  1021. significant if you have set a pretty high standard for the
  1022. "uniqueness" of uploads that your bbs will accept.
  1023.  
  1024. The second advantage is for those systems that configure ZDCS to
  1025. delete duplicate files.  The use of allowed duplicates can protect
  1026. popular shareware packages from being stripped of important files.
  1027. Not only does the deletion of such files alter the content of the
  1028. author's shareware package, but it also destroys any AV stamp the
  1029. author placed on the work.
  1030.  
  1031. Whether or not this option is enabled is controlled by the presence or
  1032. absence of an ASCII text file called ZDCS.ADN in the ZDCS directory on
  1033. your system.  This file is one that you create with any text editor to
  1034. list all the files, one per line, that are allowed duplicates.  You
  1035. can designate an allowed duplicate by either its file name or its
  1036. CRC32.
  1037.  
  1038. To specify an allowed duplicate by name, just type the dollar sign $
  1039. followed immediately by the name of the file with its extension.  This
  1040. preserves a file with a distinctive name (like OMBUDSMN.ASP) even if
  1041. it undergoes some revisions.
  1042.  
  1043. To specify an allowed file by its CRC32 value, type the pound sign #
  1044. followed by the CRC32 for the file.  If you don't know the CRC32
  1045. offhand, you can get this information from PKZIP.  Issuing the PKZIP -
  1046. V command on any zipfile gives you the CRC32 values for each
  1047. individual file inside the zipfile.
  1048.  
  1049. The ZDCS.ADN file may be up to 256 lines long, but must contain no
  1050. blank lines and no blank spaces.  You can edit, delete or recreate
  1051.  
  1052.  
  1053.                                  - 16 -
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. this file at any time without having to set any other switches, alter
  1061. the configuration file, or make any other changes to the setup of
  1062. ZDCS.
  1063.  
  1064. While the expected application of the allowed duplicate feature is
  1065. with zipfiles, it does work for GIF files too.  If a GIF is included
  1066. among the allowed duplicates, then a repeat upload of the same GIF
  1067. will not be flagged as a duplicate, and the upload will be accepted.
  1068.  
  1069.  
  1070.  
  1071. THE UPLOAD FILE CHECKER
  1072. -----------------------
  1073.  
  1074. Purpose
  1075. -------
  1076.  
  1077. Once you have created the initial ZDCS duplicate file database, you
  1078. can get the bbs to check all uploaded zipfiles and GIFs against it
  1079. from then on.  This is done by processing the uploaded zipfiles and
  1080. GIFs with the upload file checker ZDCSFC as the files are received.
  1081. The primary purpose is to catch uploaded files that duplicate ones
  1082. already on the bbs.
  1083.  
  1084. ZDCSFC can also flag bbs ads, as described in that section of this
  1085. manual.  Depending on whether you have enabled any deletion options in
  1086. the configuration file, ZDCSFC can also perform deletions of duplicate
  1087. files and/or bbs ads.  With the use of a list of allowed duplicates,
  1088. also described in a separate section in this manual, the file checking
  1089. performed by ZDCSFC can be made even more sophisticated.
  1090.  
  1091.  
  1092. Function
  1093. --------
  1094.  
  1095. ZDCSFC works with the CRC32 value for each file in an upload.  If the
  1096. uploaded file is a GIF, it first calculates the CRC32 for that file.
  1097. If the uploaded file is a zipfile, ZDCSFC reads the value of the CRC32
  1098. for each individual file in the zipfile.
  1099.  
  1100. Then ZDCSFC compares the CRC32 for each file in the upload against the
  1101. ZDCS database.  If you have created the bbs ads database and left it
  1102. in the ZDCS directory on your system, ZDCSFC also compares the files
  1103. in the upload against the bbs ads database.
  1104.  
  1105. The results are displayed file by file for the caller after the upload
  1106. has been received and processed, providing real time feedback.  The
  1107. same information is also available to the sysop as part of the ZDCSFC
  1108. log file.  The complete path and file name for this log were specified
  1109. as line 5 of the configuration file.
  1110.  
  1111. ZDCSFC also calculates the actual percentage of duplicates in any
  1112. upload and compares this against the maximum percentage you have set
  1113. for the board.  On the basis of this comparison, an upload may be
  1114. accepted or declined.  Declined uploads are not deleted from the
  1115. system.  PCBoard moves a declined upload to your private directory for
  1116. sysop review.
  1117.  
  1118.  
  1119.                                  - 17 -
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. The calculation of percent duplicates is covered in more detail in a
  1127. separate section of this manual dealing with maximum and actual
  1128. percent duplicates in an upload.
  1129.  
  1130.  
  1131. Maximum and Actual Percent Dupes in an Upload
  1132. ---------------------------------------------
  1133.  
  1134. ZDCSFC calculates the actual percentage of duplicate files in the
  1135. upload.  Since a GIF is a single file, it will either be 0% (not a
  1136. dupe) or 100% (a dupe).  For zipfiles, this actual percentage can vary
  1137. anywhere between 0 and 100.  ZDCSFC compares this actual percentage
  1138. against the maximum percentage you set in line 4 of the configuration
  1139. file.
  1140.  
  1141. If the actual percentage is lower than the maximum, the upload is
  1142. accepted.   If the actual percentage is equal to or higher than the
  1143. maximum you specified, the upload is declined.  PCBoard moves these
  1144. declined files into your private upload directory, where you can
  1145. review them.  Some callers have become frantic at the idea that a
  1146. "declined" file is thrown out.  This does *not* happen with ZDCS.
  1147.  
  1148. If you want to bypass this filter, set the percentage to 100.  This
  1149. permits a duplicated GIF or a zipfile with nothing but duplicates to
  1150. pass the filter and never be declined.  At the other extreme, you can
  1151. set the percentage to 0.  This effectively requires that the uploaded
  1152. GIFs and zipfiles have no duplicates at all, or they will be declined.
  1153.  
  1154. The section in this manual that describes the configuration file
  1155. specifies that the maximum percentage of dupes in line 4 must be a
  1156. whole number, not a decimal.  This is because ZDCS deliberately
  1157. truncates any decimal from this value.  ZDCS does not round up or down
  1158. but performs a straightforward truncation on both the actual and the
  1159. maximum percentage of dupes.  This was done for reasons of memory
  1160. management.  An example may make it clearer how this approach works in
  1161. actual practice.
  1162.  
  1163. Suppose that the maximum percentage of duplicates is set to 20.  An
  1164. upload with an actual percentage of 19.9 would be truncated down to
  1165. 19.  ZDCS would see that 19 is less than 20 and would accept this
  1166. upload.  If the actual percentage were rounded instead of truncated,
  1167. it would be 20 instead of 19.  ZDCS would then decline this upload
  1168. because the actual percentage would not be less than the maximum
  1169. percentage of dupes.
  1170.  
  1171.  
  1172. Updating ZDCS Database(s) After an Upload
  1173. -----------------------------------------
  1174.  
  1175. ZDCSFC automatically updates the duplicate files database with the
  1176. CRC32s of all uploads.  You do not have to do anything special to
  1177. include this information in the database for comparison with future
  1178. uploads.
  1179.  
  1180. ZDCSFC does not modify the bbs ads database at all.  It's still not
  1181. smart enough to recognize a bbs ad until you've pointed it out first -
  1182. but it does remember them next time it sees them.  Please see the
  1183. section in this manual on the bbs ads database for more information.
  1184.  
  1185.                                  - 18 -
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. Calling ZDCS from EXZTEST
  1193. -------------------------
  1194.  
  1195. ZDCS should be used in conjunction with a file integrity checker.  If
  1196. you have decided to use EXZTEST, then how you call ZDCSFC to process
  1197. new uploads depends on which version of EXZTEST you are running.
  1198.  
  1199. The newer versions of EXZTEST provide a seamless integration with ZDCS
  1200. that takes care of calling the ZDCSFC module, feeding it the
  1201. information it needs, and completing any file deletions that you have
  1202. enabled.  This is available in EXZTEST version 2.0 and higher.
  1203.  
  1204. A sample PCBTEST.BAT file that calls the newer (2.x) version of
  1205. EXZTEST is included with this package under the file name PCBTEST.ALT.
  1206. For more information on the ZDCS integration implemented in EXZTEST
  1207. 2.x, please see the documentation for EXZTEST.
  1208.  
  1209. The older versions of EXZTEST before version 2.0 can still be used in
  1210. conjunction with ZDCSFC to check new uploads.  Instead of relying on
  1211. EXZTEST to call ZDCS, you must call the upload file checker from the
  1212. PCBTEST.BAT file directly.
  1213.  
  1214. A sample PCBTEST.BAT file that calls the older (1.x) version of
  1215. EXZTEST and then calls ZDCSFC is included with this package under the
  1216. file name PCBTEST.BAT.  You'll have to modify it a bit to reflect the
  1217. pathnames and other details specific to your system, but it's a good
  1218. general guideline.
  1219.  
  1220. More detailed information can be found in this manual in the section
  1221. on calling ZDCSFC from the PCBTEST.BAT file.  This section is more
  1222. general and addresses the use of any file integrity checker.
  1223.  
  1224.  
  1225. Calling ZDCSFC from the PCBTEST.BAT File
  1226. ----------------------------------------
  1227.  
  1228. ZDCS should always be used in conjunction with a file integrity
  1229. checker.  When processing new uploads, the file integrity checker
  1230. should be called from the PCBTEST.BAT file before ZDCSFC.  If you are
  1231. using the PCBDescribe feature in PCBoard 14.5a, that command should be
  1232. used first of all.
  1233.  
  1234. To use ZDCS with the file integrity checker of your choice (even if
  1235. it's just PKZIP -T), there are six basic pieces you need to include in
  1236. the PCBTEST.BAT file.
  1237.  
  1238. 1.   Include the following three lines to clean out old copies of
  1239.      these files left over from processing other uploads:
  1240.  
  1241.                @IF EXIST PCBFAIL.TXT DEL PCBFAIL.TXT
  1242.                @IF EXIST PCBPASS.TXT DEL PCBPASS.TXT
  1243.                @IF EXIST ZDCS-DEL.LST DEL ZDCS-DEL.LST
  1244.  
  1245.      PCBFAIL.TXT contains information displayed to the caller when an
  1246.      upload is declined.  PCBPASS.TXT contains the information
  1247.      displayed when the upload is accepted.
  1248.  
  1249.  
  1250.  
  1251.                                  - 19 -
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      ZDCS-DEL.LST is a list of files targeted by ZDCS for deletion
  1259.      from an upload.  These might be duplicate files, bbs ads, or
  1260.      both.  If you haven't enabled any deletion options in the
  1261.      configuration file, or if there were no files meeting the
  1262.      criteria for deletion, ZDCS would not generate the ZDCS-DEL.LST
  1263.      file for that upload.  By deleting the files here, you make sure
  1264.      that no old deletion instructions are hanging around when a new
  1265.      file is processed.
  1266.  
  1267. 2.   Call your file integrity checker to process the upload.  The
  1268.      exact command to do this will depend on which integrity checker
  1269.      you are using.  The most basic and simple one of all is to make
  1270.      use of this ability in PKZIP by using the -T switch, but there
  1271.      are other programs to do file integrity checking and more.
  1272.  
  1273. 3.   Call ZDCSFC to check the upload.  The appropriate command is:
  1274.  
  1275.                ZDCSFC %1 %2 %3
  1276.  
  1277.      If you are running a version of PCBoard older than the May 22,
  1278.      1991 version 14.5a, PCBoard will provide only two parameters.
  1279.      Since the third one is absolutely necessary for pre-testing, that
  1280.      means you must disable the pre-testing feature.  There is a way
  1281.      to get around this limitation if you absolutely must.  It's not
  1282.      exactly elegant, but it does work.  If you need to know more
  1283.      about it, contact us in one of the conferences mentioned in the
  1284.      support section of this manual.
  1285.      
  1286.      If you are using a newer version of PCBoard but you don't want to
  1287.      use the pre-testing right now, it is still strongly recommended
  1288.      that you leave the third parameter in place.  It does no harm and
  1289.      could save you some grief if you change your mind in the future.
  1290.  
  1291.      At the end of processing by ZDCSFC, you might have a new file
  1292.      called ZDCS-DEL.LST.  This depends on whether you have enabled
  1293.      any deletions and on whether there were any files in the upload
  1294.      that met your criteria for deletion.  If no files are to be
  1295.      deleted, this control file won't be created.
  1296.  
  1297. 4.   Skip to the end if there are no files to be deleted:
  1298.  
  1299.                IF NOT EXIST ZDCS-DEL.LST GOTO END
  1300.  
  1301.      This line tests for the presence of the ZDCS-DEL.LST file.  If
  1302.      the file is not found, it means that there are no deletions to be
  1303.      performed on the current upload.
  1304.  
  1305. 5.   Perform the deletion of files specified by ZDCSFC:
  1306.  
  1307.                PKZIP -D %1 @ZDCS-DEL.LST
  1308.  
  1309.      Note that the actual deletion is done by PKZIP.  ZDCSFC creates
  1310.      the control file ZDCS-DEL.LST to specify the deletions and
  1311.      PCBTEST.BAT passes this file to PKZIP at this point.  This is
  1312.      also the only time an existing AV stamp on an upload is affected
  1313.      by ZDCS.  More information on AV stamp integrity is available in
  1314.      a separate section of this manual.
  1315.  
  1316.  
  1317.                                  - 20 -
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. 6.   Mark the end:
  1325.  
  1326.                :END
  1327.  
  1328.      When there are no files to be deleted, this statement marks the
  1329.      location where control in the PCBTEST.BAT file is passed.
  1330.  
  1331.  
  1332. DOS Error Levels
  1333. ----------------
  1334.  
  1335. In addition to creating the required PCBPASS.TXT and PCBFAIL.TXT
  1336. files, ZDCSFC also sets the DOS error level when it exits.  These
  1337. levels are:
  1338.  
  1339.  
  1340. 0  No duplicate files were found within the upload.
  1341.  
  1342. 1  Some duplicates were found, but the upload passed the percentage
  1343.    test.
  1344.  
  1345. 2  Too many duplicates were found, and the upload failed the
  1346.    percentage test.
  1347.  
  1348. 3  Every file within the upload was a duplicate.
  1349.  
  1350. 4  There is no number 4.  (Reserved for future expansion.)
  1351.  
  1352. 5  Upload checking by ZDCSFC was aborted.  Please see log for error
  1353.    message.
  1354.  
  1355.  
  1356.  
  1357. PROCESSING LOCAL UPLOADS
  1358. ------------------------
  1359.  
  1360. There probably isn't a sysop alive who hasn't scavenged new files for
  1361. the board and uploaded them locally.  ZDCS offers two ways of
  1362. processing these local uploads.  The first method is to use the
  1363. database builder ZDCSDB;  the second method is to use the upload file
  1364. checker ZDCSFC that processes all the regular uploads from callers.
  1365.  
  1366. In the first case, ZDCSDB can be used to add all the new files to the
  1367. database.  Just like the initial creation of the ZDCS database or
  1368. subsequent database merges, ZDCSDB adds the CRC32's of the new files
  1369. to the database.  The duplicate report generator ZDCSDR can still be
  1370. used to tell you about duplicates in the database.  A disadvantage to
  1371. this method is that it does not give the sysop the same kind of
  1372. immediate feedback for a local upload as the sysop and caller get for
  1373. a regular upload.  It also does not delete bbs ads or duplicate files
  1374. (if you have those options enabled).
  1375.  
  1376. To use ZDCSDB to process local uploads, you only have to change the
  1377. first line of the ZDCS configuration file.  This line points to the
  1378. paths of the files to be processed when running the database builder.
  1379. (The line contains the full path / name of the text file that lists
  1380. all the directories whose files are to be processed.)  Change this to
  1381.  
  1382.  
  1383.                                  - 21 -
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. point to the uploads directory, a holding directory, or whatever
  1391. directory will hold the local uploads to be processed.  Now just run
  1392. ZDCSDB and the files will be added to the existing database.
  1393.  
  1394. This method does not interfere with the realtime upload checking
  1395. performed by ZDCSFC on regular uploads, because the path information
  1396. in line 1 of the configuration file is not used by ZDCSFC.  If you've
  1397. decided on a permanent holding directory, you won't even have to touch
  1398. the configuration file again to process any future uploads.  Just
  1399. remember to run ZDCSDB before posting new files on the board.
  1400.  
  1401. This is a good time to repeat one note of caution:  ZDCS does not do
  1402. any integrity testing.  ZDCS is intended to work with your choice of
  1403. integrity tester, not to replace it.  If you have not used an
  1404. integrity checker on the local upload files (why not?), then you need
  1405. to use the T (for Test) switch.  Instead of using the command ZDCSDB
  1406. to run the database build, use the ZDCSDB T command.
  1407.  
  1408. This calls PKZIP to do an integrity check on the zipfiles.  Any file
  1409. that fails this test is not processed by the database builder.  There
  1410. will be a message in the database building log file ZDCS-DBB.LOG for
  1411. each such damaged file.
  1412.  
  1413. Don't use the T switch without reason - it adds another step and that
  1414. slows the processing down tremendously.  But if you have a collection
  1415. of files that haven't passed through an integrity checker, like
  1416. prospective local uploads, ZDCSDB T is the way to deal with them.  If
  1417. ZDCSDB has to skip a file because it's flagged as damaged, that
  1418. information will show up in ZDCS-DBB.LOG.
  1419.  
  1420. The second method mimics regular uploading to get the local uploads
  1421. processed by the upload file checker ZDCSFC.  This is handled via a
  1422. small utility and batch file combination available free on The Hacker
  1423. Central BBS as LOCALUP.ZIP.  You'll have to modify the batch file for
  1424. your own system, of course.
  1425.  
  1426. The result is that the local uploads will see the same processing that
  1427. a regular caller's upload does on your board - including your usual
  1428. file integrity checker, bbs ad deletion (if enabled), duplicate file
  1429. deletion (if enabled), and all the rest.  This has the additional
  1430. advantage of giving you the ZDCSFC log file entries for the local
  1431. uploads, which gives the status of the files inside the zipfiles:
  1432. duplicates, bbs ads, allowed duplicates, etc.
  1433.  
  1434. Local upload processing is an area targeted for future enhancement in
  1435. ZDCS.
  1436.  
  1437.  
  1438. PRE-TESTING
  1439. -----------
  1440.  
  1441. Callers can pre-test an upload to find out how it compares to files
  1442. already on the bbs in terms of duplicates and bbs ads.  The idea is to
  1443. see how the prospective upload compares to existing files in terms of
  1444. duplicates, bbs ads, etc. before actually uploading the full file to
  1445. the bbs.  It can save both caller and sysop a certain amount of
  1446. frustration.
  1447.  
  1448.  
  1449.                                  - 22 -
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. The procedure is wonderfully simple from a caller's point of view and
  1457. requires nothing that might tax a relatively novice uploader's skills.
  1458. There are no special files to download, no complicated operations to
  1459. get right, no arcane rituals to perform.  This makes it more likely
  1460. that callers will take advantage of the pre-test feature.
  1461.  
  1462. Included in this release of ZDCS is a sample bulletin that can be
  1463. posted by the sysop on the bbs to explain to callers the ZDCS pre-
  1464. testing feature for zipfiles.  The bulletin holds the caller's hands,
  1465. figuratively speaking, through the whole process.  If your bbs permits
  1466. the uploading of SFX or GIF files, you might want to add those
  1467. initials where you see ZIP in the bulletin.  A ZIP-only bbs can use
  1468. the canned bulletin right from the package.
  1469.  
  1470. To pre-test an upload called GOODSTUF.ZIP, the caller simply issues
  1471. the DOS command:
  1472.  
  1473.           PKZIP -V GOODSTUF.ZIP > ZDCSTEST.CHK
  1474.  
  1475. This command is not case sensitive, so it's pretty hard to make a
  1476. mistake with it.
  1477.  
  1478. The caller then uploads the file ZDCSTEST.CHK directly to the bbs.
  1479. ZDCS will read the information in it and will give the caller a
  1480. breakdown of the zipfile's contents, noting which individual files are
  1481. duplicates or bbs ads.  This output looks just like the response a
  1482. caller gets after actually uploading the zipfile, with one exception:
  1483. instead of telling the caller whether the file is accepted or
  1484. declined, ZDCS tells the caller what percentage of files in the upload
  1485. are duplicates, and also gives the maximum percent duplicates which
  1486. the sysop has allowed for the board.  Now it's up to the caller to
  1487. decide whether to upload or not.
  1488.  
  1489. Enabling the pre-test capability is not tough on the sysop, either.
  1490. The key to whether or not pre-testing is permitted on your bbs lies in
  1491. the UPSEC file.  If you want to prevent callers from using pre-
  1492. testing, just disallow uploads that have the .CHK extension.  On the
  1493. other hand, if you want callers to have the option to pre-test, make
  1494. sure that .CHK files may be uploaded to
  1495. the system.
  1496.  
  1497. There's one more thing to check before letting your callers use the
  1498. pre-testing feature.  If you are not using EXZTEST version 2.0 or
  1499. higher, remember to make sure that the PCBTEST.BAT file contains the
  1500. following line:
  1501.  
  1502.      ZDCSFC %1 %2 %3
  1503.  
  1504. This is already discussed elsewhere in this manual as part of the ZDCS
  1505. installation.  That third parameter is necessary to let the pre-
  1506. testing work for more than just the first caller.  If you leave it
  1507. out, the first ZDCSTEST.CHK file uploaded to your system will work
  1508. just fine, but all subsequent attempts to pre-test will be told that
  1509. the ZDCSTEST.CHK file is a duplicate!  And that means they won't be
  1510. recognized as attempts at pre-testing.
  1511.  
  1512. If you are using EXZTEST version 2.0 and up as your file integrity
  1513. checker, you won't have a ZDCS line in the PCBTEST.BAT file.  That's
  1514.  
  1515.                                  - 23 -
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. because EXZTEST has a seamless interface to ZDCS and calls it
  1523. directly.
  1524.  
  1525. Since this third parameter is critical to the proper functioning of
  1526. the pre-test option, you must have a recent enough version of PCBoard
  1527. that supports the third parameter.  The earliest version of the board
  1528. code that satisfies this requirement is PCBoard 14.5a from May 22,
  1529. 1991.  This version and anything after it can handle ZDCS pre-testing.
  1530.  
  1531. If you track your callers' uploads and downloads, you might like to
  1532. know that the ZDCSTEST.CHK will not count as an upload.  According to
  1533. ZDCS and PCBoard, the ZDCSTEST.CHK file always "fails" validation and
  1534. is not credited to the caller as an upload.  The bulletin does mention
  1535. that pre-testing doesn't count as an upload, just in case some of your
  1536. callers are too enthusiastic about getting upload credits.
  1537.  
  1538.  
  1539.  
  1540. ZIPs WITHIN ZIPs
  1541. ----------------
  1542.  
  1543. Processing of zipfiles contained within zipfiles is accomplished with
  1544. some caveats.  Zipfiles within a zipfile are only checked one level
  1545. deep.  The simplest explanation is to look at an example.
  1546.  
  1547. ZIP A contains assorted files and ZIP B.  In turn, ZIP B contains more
  1548. files and another ZIP, C.  ZIP C contains still more files.  How does
  1549. the whole melange get processed?
  1550.  
  1551. All the files in ZIP A and in ZIP B have their CRC32 signatures
  1552. entered into the duplicate files database.  If you have configured
  1553. ZDCS to delete any files (dupes or bbs ads), then those deletions are
  1554. done automatically only for the individual (non-zipped) files inside
  1555. ZIP A.  No files are deleted from inside ZIP B.  Of course, all the
  1556. duplicates in ZIP B are still listed in the log, so you do know about
  1557. them and you can decide whether to remove them manually from your file
  1558. system.
  1559.  
  1560. What about ZIP C?  That's easy:  any zipfile embedded more than one
  1561. level deep in the uploaded zipfile (and C is two levels deep) is not
  1562. processed as a zipfile at all.  No file deletions, no CRCs, nothing.
  1563.  
  1564. In fact, *any* file that has the .ZIP extension will not be treated as
  1565. an individual file in the database or the log file.  The reason is
  1566. simple:  it's the individual files inside the zipfiles and not the
  1567. zipfile itself that are important when looking at duplicates.
  1568. (Besides, it plays havoc with the percentages.)
  1569.  
  1570.  
  1571.  
  1572. CD-ROMs
  1573. -------
  1574.  
  1575. CD-ROMs have been growing in popularity among bbs's because they
  1576. enable a large, static collection of files (such as shareware
  1577. programs) to be available for downloading.  ZDCS works just fine with
  1578. CD-ROM drives, but the sheer size of these disks means that it can
  1579. take quite a while to build the ZDCS database for a CD-ROM.
  1580.  
  1581.                                  - 24 -
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. To make life easier, a new ZDCS database merge utility is now
  1589. available on The Hacker Central.  By merging databases, it is possible
  1590. to take advantage of the existence of prebuilt ZDCS databases for the
  1591. more popular CD-ROMS.  This lets you merge a prebuilt database into
  1592. your own bbs's database in a fraction of the time it would take to add
  1593. all the CD-ROM information from scratch.
  1594.  
  1595. Prebuilt ZDCS databases for some CD-ROMs are available free on The
  1596. Hacker Central BBS.  If you have a CD-ROM that doesn't already have a
  1597. prebuilt ZDCS database, please consider creating a ZDCS database for
  1598. the individual CD-ROM and sharing it with other ZDCS users by
  1599. uploading it to The Hacker Central.  During 1992, we are offering a
  1600. free ZDCS registration as a thank you to anyone who uploads such a
  1601. database.
  1602.  
  1603.  
  1604.  
  1605. AV STAMP INTEGRITY
  1606. ------------------
  1607.  
  1608. Registered versions of PKZIP can "brand" a zipfile with the unique AV
  1609. (authenticity verification) number of the registered owner.  The AV
  1610. stamp is used by some shareware authors for their official
  1611. distribution packages.  It is also abused by some people, including a
  1612. few bbs sysops, sad to say.  Whether ZDCS will always leave that AV
  1613. stamp intact is determined by the configuration of ZDCS.
  1614.  
  1615. The first possibility is that ZDCS is configured never to delete any
  1616. files, whether duplicate files or bbs ads.  In this case, the original
  1617. AV stamp is always retained.
  1618.  
  1619. The second possibility is that ZDCS is configured to delete files, but
  1620. no files need to be deleted from a particular zipfile.  In that case,
  1621. any AV on the original zipfile is left intact.
  1622.  
  1623. The third possibility is that ZDCS deletes one or more bbs ads.
  1624. Whether the AV stamp is left intact depends on whether the bbs ad was
  1625. included in the zipfile inside or outside the AV branding.  If the
  1626. offending bbs just added their advertising to the outside of an AV
  1627. stamped zipfile and left the original author's AV stamp in place, ZDCS
  1628. will do the same.  If that bbs added their overhead file and then
  1629. rezipped the entire package with their own AV stamp (don't laugh,
  1630. there's at least one large bbs that's done this), then they have
  1631. destroyed any original AV stamp.  ZDCS does not preserve the AV stamp
  1632. in this case.
  1633.  
  1634. The fourth possibility is that ZDCS deletes one or more duplicate
  1635. files.  If any deleted file was included in the AV branding, then the
  1636. AV stamp is not preserved.  If all deleted files were outside the
  1637. original AV stamp, then the AV stamp is intact.  (This could happen
  1638. with some advertising file that you've already been hit with but which
  1639. doesn't appear in your bbs ads database.)
  1640.  
  1641. This last possibility deserves a little thought from the shareware
  1642. author's point of view.  It is not uncommon for a new version to
  1643. contain some files that are unchanged from the previous version.  If
  1644.  
  1645.  
  1646.  
  1647.                                  - 25 -
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. these files haven't been flagged as allowed duplicates, it is possible
  1655. to choose to configure ZDCS so that these files are removed.  If that
  1656. happens, the AV stamp is also removed.  This is in keeping with the
  1657. ideal that the stamp should represent an authenticity verification
  1658. from the original author.
  1659.  
  1660. ZDCS is quite capable of handling and retaining all AV stamps.  This
  1661. is a matter of choice on the part of the sysop and is the direct
  1662. result of the simple configuration options.
  1663.  
  1664.  
  1665.  
  1666. ACCURACY OF THE CRC32 METHOD
  1667. ----------------------------
  1668.  
  1669. In order to detect duplicates, some unique signature is needed for
  1670. each file.  While the only truly unique signature is as long and
  1671. cumbersome as the file itself, there are more manageable alternatives.
  1672. Any algorithm is a trade-off between these two factors:  manageability
  1673. and accuracy.  The more unique signatures a method can generate, the
  1674. smaller the possibility that two different files might generate the
  1675. same signature.
  1676.  
  1677. ZDCS makes use of the CRC32 used by PKZIP.  This signature has a total
  1678. of eight "places", each filled by independent assortment with one of
  1679. sixteen different values.  That makes for a total of
  1680. 16*16*16*16*16*16*16*16 (16 to the 8th power) unique signatures.  With
  1681. over four and a quarter billion possible signatures, this method has
  1682. good accuracy.
  1683.  
  1684. It is possible to use other methods to permit an even greater number
  1685. of unique signatures.  The longer signatures and different calculation
  1686. methods carry a corresponding cost in complexity, disk space and
  1687. processing speed.
  1688.  
  1689.  
  1690.  
  1691. MEMORY LIMITS
  1692. -------------
  1693.  
  1694. The ZDCS upload file checker ZDCSFC.EXE requires a minimum of 384K of
  1695. free memory (RAM).
  1696.  
  1697. There is an internal limit of 650 files within a zipfile for
  1698. processing by both the upload file checker ZDCSFC.EXE and the database
  1699. creator ZDCSDB.EXE.  If there are more files inside the zipfile, ZDCS
  1700. will handle the first 650 it encounters and will leave a message in
  1701. the log.  There is nothing to reset and no effect on processing the
  1702. next file ZDCS encounters.  These limits are imposed by the DOS 640K
  1703. Limit.
  1704.  
  1705.  
  1706. TROUBLE-SHOOTING GUIDE
  1707. ----------------------
  1708.  
  1709. There is no better help for solving problems than experience,
  1710. especially someone else's experience with the same problems.
  1711.  
  1712.  
  1713.                                  - 26 -
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. ZDCSDB (the database build) is crashing.
  1721. ---------------------------------------
  1722.  
  1723. There is a log file ZDCS-BBA.LOG that collects messages when ZDCSDB is
  1724. used to create a new duplicate file database or add to an existing
  1725. one.  Read the messages in the log file to find out why the database
  1726. build program is crashing.
  1727.  
  1728. Most of the time, the culprit is a damaged zipfile.  ZDCS normally
  1729. depends on the fact that most sysops use a separate integrity file
  1730. checker on their boards.  If a corrupted zipfile gets into the
  1731. collection of files being processed into the database, it can bring
  1732. things to a sudden halt.
  1733.  
  1734. The recommended solution is to process all files with a file integrity
  1735. checker first.  However, there is a second alternative using just
  1736. ZDCS.  You can use the T (for Test) switch to tell ZDCSDB to call
  1737. PKZIP and perform a file check first.  Only those files passed by this
  1738. check are processed by the database builder.  The syntax is simple:
  1739. ZDCSDB T instead of ZDCSDB.  The penalty in speed for doing it this
  1740. way is very significant, which is why it is not the usually preferred
  1741. solution.
  1742.  
  1743.  
  1744. ZDCS is reporting a device I/O error (in any module).
  1745. ----------------------------------------------------
  1746.  
  1747. So far, we have seen this happen twice.  Each time, ZDCS was running
  1748. on a LAN.  In both cases, the problem was traced back to bad spots on
  1749. the hard drives.
  1750.  
  1751. The best medicine for this error message is to run Norton Disk Doctor,
  1752. Spinrite, or something similar on your hard drive system.
  1753.  
  1754.  
  1755. ZDCS reports memory corrupt errors (in any module).
  1756. --------------------------------------------------
  1757.  
  1758. This sounds like an earlier version of ZDCS, probably version 1.62 or
  1759. earlier.  Those versions required more free RAM and sometimes ran out
  1760. of memory, which resulted in the misleading "memory corrupt" messages.
  1761. Time to stop reading the docs and get this newer release (version
  1762. 1.65) installed!  The improved memory management in ZDCS 1.65 should
  1763. solve your problems.
  1764.  
  1765.  
  1766. ZDCS reports path/file access errors.
  1767. ------------------------------------
  1768.  
  1769. One possibility is that you are using an earlier version of ZDCS on a
  1770. LAN *and* you are not loading SHARE before running ZDCS.  This is most
  1771. likely to happen on a Novell Netware LAN.  You can solve this one by
  1772. loading SHARE before you run any of the ZDCS modules on a network.
  1773. Better still, you can upgrade to this version 1.65 of ZDCS.
  1774.  
  1775. If you have loaded SHARE high under DOS 5.0, you might still be
  1776. experiencing the same symptoms.  There seems to be a problem with
  1777.  
  1778.  
  1779.                                  - 27 -
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. loading SHARE high;  it's not anything specifically to do with ZDCS.
  1787. Try loading SHARE low instead.
  1788.  
  1789. Another possibility is that you haven't specified enough files in your
  1790. CONFIG.SYS file.  Because ZDCS makes such heavy use of disk I/O, you
  1791. should make sure that at least 30 files are specified in CONFIG.SYS
  1792. (FILES=30).
  1793.  
  1794. Of course, if you are trying to use the upload file checker ZDCSFC
  1795. before you've built the duplicate file database with ZDCSDB, you
  1796. shouldn't be surprised if ZDCS acts a little weird.  Try building the
  1797. database first and then comparing new files against it.  Things work
  1798. much better that way.
  1799.  
  1800.  
  1801. QEMM exception 13 errors occur when running ZDCS.
  1802. ------------------------------------------------
  1803.  
  1804. There are five possible reasons for this error message.
  1805.  
  1806. 1. You're running an earlier version of ZDCS, probably version 1.62
  1807.    or even earlier.  Those versions required more free RAM and
  1808.    sometimes ran out of memory, which could result in the QEMM error
  1809.    messages.  Upgrade to the current version 1.65 of ZDCS, which has
  1810.    improved memory management.
  1811.  
  1812. 2. Your QEMM command line is incorrect.  The problem isn't with ZDCS
  1813.    itself, but ZDCS is likely to be the first program to notice this
  1814.    QEMM error because of the amount of data ZDCS needs to juggle.
  1815.    The result is that ZDCS is able to write its data someplace it
  1816.    shouldn't.  To solve this problem, check that all areas of memory
  1817.    that should be excluded from QEMM are being properly excluded.  Be
  1818.    especially careful if your system has super VGA, SCSI devices or a
  1819.    LAN:  all of these devices usually require specific areas of
  1820.    memory to be excluded from remapping by QEMM.
  1821.  
  1822. 3. You have one or more "mis-behaved" device drivers.  You can check
  1823.    out this possibility by removing all drivers from your CONFIG.SYS
  1824.    file, rebooting the system, and trying ZDCS again.  One example of
  1825.    this type of problem was with an older version of the Hyperdisk
  1826.    cache.
  1827.  
  1828. 4. You believed the QEMM optimize program when it told you to get rid
  1829.    of DOS stack space.  Put it back!  QEMM is egocentric enough to
  1830.    believe it can handle all types of stack requirement for any
  1831.    application properly.  Let's just say that putting back the DOS
  1832.    stack space solves this problem nicely.
  1833.  
  1834. 5. You are trying to use the "stealth technology" feature of QEMM
  1835.    6.x.  There have been persistent reports of problems traced to
  1836.    interactions between stealth and various applications from other
  1837.    vendors.  It wouldn't be at all surprising if ZDCS experienced the
  1838.    same trouble with stealth.  This is not a bug in ZDCS.  Contact
  1839.    Quarterdeck tech support.  In the meantime, disable stealth by
  1840.    removing the ST:F or ST:M from the DEVICE=QEMM.SYS line in the
  1841.    CONFIG.SYS file.
  1842.  
  1843.  
  1844.  
  1845.                                  - 28 -
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852. REGISTRATION
  1853. ------------
  1854.  
  1855. ZDCS is a fully functional shareware package.  There are no critical
  1856. limits, crippled features or "drop dead" dates.  The only difference
  1857. in the unregistered version is a brief message to sysop and caller
  1858. that the version is unregistered.
  1859.  
  1860. A customized ZDCS.KEY file is available to registered users to change
  1861. the "unregistered" message to show registration in the name of <BBS
  1862. Name> or to eliminate the display of any message at all.  Registration
  1863. entitles the user to a license for use of the Zipfile Duplicate
  1864. Checking System on one bbs, no matter how many nodes it has.  This
  1865. includes all future versions of ZDCS.  No additional fees will be
  1866. charged for registration of future versions of this product.
  1867.  
  1868. If you try ZDCS out on your system and decide that you want to
  1869. continue using it, please register your copy by sending a check for
  1870. $25.00 (US).  Include the name of your bbs (up to 25 characters) as
  1871. you want it to appear to your callers.  An order form (ORDER.FRM) is
  1872. included in this release for your convenience.  We will prepare a key
  1873. file for your copy of ZDCS with this information in it to replace the
  1874. "unregistered version" line in the display.  This keyfile will be
  1875. available for download from The Hacker Central BBS.
  1876.  
  1877. If your bbs is located in the continental United States or Canada, you
  1878. may take advantage of the keyfile delivery service any time during
  1879. 1992.  For an additional $5.00 (US), we will prepare your keyfile and
  1880. upload it to your bbs.  Just set up an account in the name of ZDCS
  1881. SUPPORT with the password KEYFILE and with sufficient security to
  1882. upload a private file for the sysop.  When you send in your
  1883. registration of $25.00 plus $5.00, remember to include the name and
  1884. number of the bbs.
  1885.  
  1886. As of 1991, ZDCS can now be registered online at The Hacker Central
  1887. BBS with a valid Visa or Mastercard.  Look for the ZDCS script
  1888. questionnaire in order to register.  The keyfile delivery service is
  1889. also available as part of the online registration.  Processing usually
  1890. takes from one to three days.
  1891.  
  1892. If you prefer to register by check or money order, please make your
  1893. registration check payable to Michael W. Cocke and mail it along with
  1894. the necessary information (like a completed order form) to:
  1895.                Michael W. Cocke
  1896.                11 Cedar Road
  1897.                Montville  NJ  07045-9582
  1898.  
  1899. Please be assured that ZDCS will continue to receive support through
  1900. future revisions.  For over a year now it has been in use on its home
  1901. board, The Hacker Central BBS.  When the programmer is also a sysop
  1902. and has to live with the results of that programming work every day,
  1903. you can be sure that the support will be there!
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.                                  - 29 -
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. SUPPORT
  1919. -------
  1920.  
  1921. ZDCS product support will be handled on the ZDCS home board and via
  1922. echoed conferences.  Questions, comments and discussion of ZDCS are
  1923. welcome in the following conferences:
  1924.  
  1925.      SHAREWARE (ILink)
  1926.      ZDCS      (Intelec)
  1927.      ZDCS      (Hacker Central, also echoed by many ILink bbs's)
  1928.  
  1929. Additional product support in the form of downloadable files
  1930. (including registration keys) is available on the ZDCS home board, The
  1931. Hacker Central BBS.
  1932.  
  1933. First time access to The Hacker Central BBS must be done via the
  1934. public node.  After completing the new user and visiting sysop
  1935. scripts, all sysops and ZDCS users (whether or not they have
  1936. registered ZDCS yet) are granted access to the two private nodes,
  1937. including the high speed line.  The Hacker Central phone numbers are:
  1938.  
  1939.      Node 1    201-334-2555   Public    2400
  1940.      Node 2    201-316-8840   Private   2400 MNP
  1941.      Node 3    201-335-9343   Private   USR HST/DS
  1942.  
  1943. Please leave a comment to sysop on your first call indicating your
  1944. interest in ZDCS in order to get access to the ZDCS support
  1945. conference.  Requests are usually handled in a day or two.
  1946.  
  1947. Another aspect of ZDCS product support is the collection of utilities
  1948. and pre-built CD-ROM databases available for download from The Hacker
  1949. Central BBS for all ZDCS users.  This collection is constantly growing
  1950. in response to suggestions, requests and cries for help.  A few of the
  1951. special utilities are described below.
  1952.  
  1953. The database merge module enables you to combine more than one ZDCS
  1954. duplicate file database into a single database.  This has the
  1955. tremendous advantage of permitting pre-built ZDCS databases to be
  1956. created for the more popular CD-ROMS.  Once accomplished, a single CD-
  1957. ROM database can be merged into any number of bbs databases in a
  1958. fraction of the time it would take to create the CD-ROM database from
  1959. scratch.
  1960.  
  1961. Pre-built CD-ROM databases are available on The Hacker Central.  We
  1962. encourage anyone who has a CD-ROM without a prebuilt database to
  1963. create the ZDCS database for the CD-ROM alone and to upload it to The
  1964. Hacker Central to share with other sysops.  To encourage this, we are
  1965. offering a free ZDCS registration to anyone who uploads a new CD-ROM
  1966. ZDCS database to The Hacker Central BBS during 1992.
  1967.  
  1968. The FWK to ZDCS converter will take the data from an FWKCS(tm)
  1969. database and convert it to a ZDCS database without requiring the
  1970. original source files to be available.  If you have tried FWKCS(tm)
  1971. and want to evaluate or switch over to ZDCS, this makes the process
  1972. easier and faster.
  1973.  
  1974. If you have used an earlier version of ZDCS (1.5x) and haven't
  1975. upgraded to the smaller and faster version 1.6, there is a free
  1976.  
  1977.                                  - 30 -
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. upgrade kit available on The Hacker Central to help you do that
  1985. without starting over again from the beginning.
  1986.  
  1987. The database editor permits you to modify or delete records in a ZDCS
  1988. database.  It is intended primarily as a debugging tool.  It is
  1989. strongly recommended that a backup copy of the database be made before
  1990. embarking on any editing.
  1991.  
  1992. A small local uploads package has been put together to make procesing
  1993. local uploads easier for the sysop who also scavenges files for the
  1994. board.  Additional work is also in progess for improving the handling
  1995. of local uploads.
  1996.  
  1997. Development on other utilities continues.  One module in progress is
  1998. geared toward ferreting out instances of bbs ads that might have crept
  1999. into the database.  With some bbs's changing their ads frequently,
  2000. this can happen before the sysop realizes it and flags the offending
  2001. ads.  Suggestions for other new utilities are always welcome.
  2002.  
  2003. All ZDCS utilities to date are free but are only available on The
  2004. Hacker Central BBS.  Please do not upload these modules to other bbs's
  2005. or distribute them as part of the shareware ZDCS package.
  2006.  
  2007. A final note about ZDCS support concerns documentation.  We feel that
  2008. clear and helpful documentation is an important part of a sysop
  2009. utility package like ZDCS.  In addition to the plain text files
  2010. included in this package, we also have the documentation available in
  2011. WinWord 2.0 with full use of styles, headers, outline processing and
  2012. other features.  If you are interested in obtaining a more
  2013. presentation-quality copy of the documentation or in discussing
  2014. conversion to other formats such as WordPerfect, please contact us on
  2015. The Hacker Central BBS.  If you have any questions, comments or
  2016. suggestions concerning the documentation, we would like to hear from
  2017. you, too.
  2018.  
  2019.  
  2020.  
  2021. FUTURE ENHANCEMENTS
  2022. -------------------
  2023.  
  2024. ZDCS is a dynamic product.  In response to suggestions, comments and
  2025. the changing bbs scene, ZDCS continues to be upgraded.  Future
  2026. enhancements under consideration or in progress include support for
  2027. other archive formats besides PKZIP, improved local upload handling,
  2028. and database path updating.
  2029.  
  2030. Path updating would keep the file location information in the ZDCS
  2031. database current even after files are moved around in the file system.
  2032. Right now, the essential identification information (the CRC32
  2033. signature) remains fine, but the path pointing to the file becomes out
  2034. of date when the file is moved.  This is usually the case with uploads
  2035. that are moved from a recent uploads directory to another destination.
  2036. Path updating would allow the sysop to locate these and any other
  2037. moved files more quickly by keeping the path information current as
  2038. well.
  2039.  
  2040.  
  2041.  
  2042.  
  2043.                                  - 31 -
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049. ACKNOWLEDGEMENTS
  2050. ----------------
  2051.  
  2052. Thanks to all the beta testers who have helped to make ZDCS a better
  2053. and smoother program.  Their patience and input are definitely
  2054. reflected in the final product.
  2055.  
  2056. Thanks to Tom Hughes for his prowess as a bug hunter extraordinaire,
  2057. and for wanting a database merge utility.  That module was a great
  2058. idea, Tom!
  2059.  
  2060. Thanks to David Terry for several clever ideas on better ways to do
  2061. things.  That kind of help is always appreciated.
  2062.  
  2063. Thanks to Bob Jacobson for his thoroughness in finding a particularly
  2064. persistent and recalcitrant bug during the recent long beta cycle.  It
  2065. (the bug, not Bob) has been sighted and squashed.
  2066.  
  2067. Special thanks to Andy Keeves for pointing out a better hammer in the
  2068. toolbox.  It was by making use of his suggestion for a different
  2069. sorting routine that the duplicate report generator was made
  2070. significantly faster.
  2071.  
  2072. Finally, thanks to everyone who had the patience to wait while version
  2073. 1.65 went through six months of intense beta bashing.
  2074.  
  2075.  
  2076.  
  2077. COPYRIGHTS AND LEGAL STUFF
  2078. --------------------------
  2079.  
  2080. ZDCS (Zipfile Duplicate Checking System) is copyright (C) 1991 by
  2081. Michael W. Cocke.  ZDCS 1.65 is fully functional shareware.  It may be
  2082. freely copied and distributed, provided that no files in this package
  2083. are removed or altered in any way.
  2084.  
  2085. The individual documentation files ZDCS-REF.TXT, ZDCS.BLT and
  2086. ZDCSWALK.TXT are copyright (C) 1991 by Evelyne Stalzer.  Permission is
  2087. granted to distribute these files as part of the complete ZDCS
  2088. shareware package.  Permission is also granted to bbs sysops to modify
  2089. ZDCS.BLT for use as needed, including as a bulletin, message or
  2090. downloadable help file.
  2091.  
  2092. ZDCS.KEY is the individual registration key file and may not be
  2093. copied, distributed or otherwise shared with individuals beyond the
  2094. registered user.
  2095.  
  2096. Neither Michael W. Cocke, Evelyne Stalzer nor MWC Enterprises will
  2097. accept responsibility for the function, failure to function, or side
  2098. effects of any function of the Zipfile Duplicate Checking System
  2099. (ZDCS).  ZDCS is provided in good faith, but its use is solely at the
  2100. risk of the operator.
  2101.  
  2102. EXZTEST and EXZIP are copyright Andy Keeves.
  2103. FWKCS is trademark and copyright Fred Kantor.
  2104. Lantastic is trademark of ArtiSoft Inc.
  2105. MS-DOS is copyright and trademark of Microsoft Corp.
  2106. Netware is trademark of Novell Inc.
  2107. PCBoard is copyright and trademark of Clark Development Company.
  2108. PKZIP and PKUNZIP are copyright and trademark of PKWARE, Inc.
  2109. ZDCS is copyright (C) 1991, Michael W. Cocke.
  2110.  
  2111.  
  2112.